package com.sitech.portal.system.service.impl;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import com.sitech.portal.server.dao.IPortalDao;
import com.sitech.portal.system.dao.ISysPanelConfigDao;
import com.sitech.portal.system.dao.ISysRolePortalDao;
import com.sitech.portal.system.dao.ISysUserPortalDao;
import com.sitech.portal.system.domain.TblSYS_ROLE;
import com.sitech.portal.system.service.ISysUserPortalService;

public class SysUserPortalServiceImpl implements ISysUserPortalService {

	private ISysUserPortalDao sysUserPortalDao;
	private ISysRolePortalDao sysRolePortalDao;
	private IPortalDao portalDao;
	
	public ISysUserPortalDao getSysUserPortalDao() {
		return sysUserPortalDao;
	}

	public void setSysUserPortalDao(ISysUserPortalDao sysUserPortalDao) {
		this.sysUserPortalDao = sysUserPortalDao;
	}

	public ISysRolePortalDao getSysRolePortalDao() {
		return sysRolePortalDao;
	}

	public void setSysRolePortalDao(ISysRolePortalDao sysRolePortalDao) {
		this.sysRolePortalDao = sysRolePortalDao;
	}

	public IPortalDao getPortalDao() {
		return portalDao;
	}

	public void setPortalDao(IPortalDao portalDao) {
		this.portalDao = portalDao;
	}

	@Override
	public void add(HashMap map) {
		// TODO Auto-generated method stub
		sysUserPortalDao.add(map);
	}

	@Override
	public void deleteUserPortal(String LOGIN_ID) {
		// TODO Auto-generated method stub
		sysUserPortalDao.deleteUserPortal(LOGIN_ID);
	}

	@Override
	public HashMap findObjTB_SYS_USER_PORTALByLoginID(String LOGIN_ID) {
		// TODO Auto-generated method stub
		return sysUserPortalDao.findObjTB_SYS_USER_PORTALByLoginID(LOGIN_ID);
	}
	
	public List<HashMap> loadPorletByUser(String loginId,List<HashMap> roleList){
//		HashMap map = this.findObjTB_SYS_USER_PORTALByLoginID(loginId);
//		String PANEL_COLLECT = "";
//		// 如果用户配置了portal信息
//		if (map != null) {
//			PANEL_COLLECT = map.get("PANEL_COLLECT").toString();
//		} else {
//			// 如果没有定制,需要给参数初始化固定显示参数.
//			PANEL_COLLECT = "0;1";
//		}
//		// 2.获取系统内所有角色所对应的portal
//		List<HashMap> rolePortalList = sysRolePortalDao.findRolePortalList();
//		
//		List<HashMap> portalList  = portalDao.findAllPorlets();
//		
//		List<String> userPanelIds = new ArrayList<String>();
//		List<HashMap> userPanels = new ArrayList<HashMap>();
//		
//		// 3.portal角色与用户所拥有的系统角色进行对比,目的找出用户角色内所有的portal
//		for (HashMap rolePortal : rolePortalList) {
//			String roleIdsStr = rolePortal.get("ROLE_IDS").toString();
//			String panelCollect = rolePortal.get("PANEL_COLLECT").toString();
//			// 使用,分割，放入list中
//			List<String> rolePanels =  Arrays.asList(panelCollect.split(","));
//			String rolesIds[] = roleIdsStr.split("#");
//			List<String> rolesArray = Arrays.asList(rolesIds);
//			// 同用户本身的角色匹配，如果匹配上了则视作包含这个roleportal下的所有portal
//			//{GRANT_ENABLE=1, ROLE_DESC=管理员, ROLE_NAME=管理员, ROLE_ID=1050}
//			for(HashMap obj : roleList){
//				String realRole = ""+obj.get("ROLE_ID");
//				if(rolesArray.contains(realRole)){
//					for(String panelEle : rolePanels){
//						if(!userPanelIds.contains(panelEle)&&!"".equals(panelEle)){
//							// 从portalList中查找出portal信息放入集合中
//							userPanelIds.add(panelEle);
//							for(HashMap portalInfo : portalList){
//								if(panelEle.equals(portalInfo.get("PORLET_ID"))){
//									userPanels.add(portalInfo);
//									break;
//								}
//							}
//						}
//					}
//				}
//			}
//		}
		
		List<HashMap> userPanels  = portalDao.findUserPorlets(loginId);
		return userPanels;
	}

}
